home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swaga_c.zip / COMM.SWG / 0013_Is Modem Ringing ??.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  1KB  |  51 lines

  1. Function ModemRinging(Port : Word) : Boolean;  { through the BIOS }
  2. Var
  3.   Dummy : Byte;
  4. begin
  5.   Asm
  6.     dec port
  7.     mov ah,03h
  8.     mov dx,port
  9.     int 14h
  10.     mov dummy,al
  11.   end;
  12.   ModemRinging := (Dummy and RI) = RI       { ring indicated }
  13. end;
  14.  
  15. or
  16.  
  17. Function ModemRinging(Port : Byte) : Boolean;  { direct port access }
  18. Const
  19.   RI = $40;
  20. begin
  21.   Case Port of
  22.     1 : ModemRinging := ($3FE and RI) = RI;   { com 1 }
  23.     2 : ModemRinging := ($2FE and RI) = RI    { com 2 }
  24.   end
  25. end;
  26.  
  27. Function PhoneRinging(ComPort: Integer): Boolean;
  28. begin
  29.     Case ComPort Of
  30.         1: PhoneRinging := (Port[$3FE] And 64) = 64;
  31.         2: PhoneRinging := (Port[$2FE] And 64) = 64;
  32.         3: PhoneRinging := (Port[$3EE] And 64) = 64;
  33.         4: PhoneRinging := (Port[$2EE] And 64) = 64;
  34.         Else
  35.             PhoneRinging := False;
  36.     end;
  37. end;
  38.  
  39. Function returns True if phone is ringing. Hope it helps.
  40.  
  41. {
  42. > Function returns True if phone is ringing. Hope it helps.
  43.  
  44. Just nitpicking but...
  45.  
  46.  PhoneRinging:=(Port[$3FE] and 64)<>0
  47.  
  48. is more efficient, as is
  49.  
  50.  PhoneRinging:=Boolean(Port[$3FE] and 64)
  51. }